const express = require('express');
const mysql = require('mysql');
const cors = require('cors'); // 导入 cors 模块
const app = express();
const port = 3000;

// 使用 cors 中间件
app.use(cors());

// 创建 MySQL 连接
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: '123456',
  database: 'hou'
});

// 连接数据库
connection.connect((err) => {
  if (err) {
    console.error('连接错误：', err);
    return;
  }
  console.log('成功连接到 MySQL 数据库！');
});

// 查询 booklist 表内容的 API
app.get('/booklist', (req, res) => {
  const { id } = req.query; // 获取请求参数中的 id

  // 如果请求中包含 id 查询参数
  if (id) {
    // 查询对应的 id 数据
    connection.query(`SELECT * FROM booklist WHERE id = ?`, [id], (err, rows) => {
      if (err) {
        console.error('查询错误：', err);
        res.status(500).send('查询失败');
        return;
      }
      // 如果没有找到对应 id 的数据，返回空数组
      if (rows.length === 0) {
        res.status(404).send('未找到对应的数据');
        return;
      }
      // 如果只有一个对象，则返回对象而不是数组
      if (rows.length === 1) {
        res.send(rows[0]);
      } else {
        res.send(rows);
      }
    });
  } else {
    // 如果请求中没有 id 查询参数，则返回所有数据
    connection.query('SELECT * FROM booklist', (err, rows) => {
      if (err) {
        console.error('查询错误：', err);
        res.status(500).send('查询失败');
        return;
      }
      res.send(rows);
    });
  }
});

// 查询 booklist 表对应的 bookid 表内容的 API
app.get('/bookid/:id', (req, res) => {
  const booklistId = req.params.id; // 获取请求参数中的 booklist 表的 id
  const tableName = `book${booklistId}`; // 构造对应的 bookid 表名

  // 查询对应的 bookid 表数据
  connection.query(`SELECT * FROM ${tableName}`, (err, rows) => {
    if (err) {
      console.error('查询错误：', err);
      res.status(500).send('查询失败');
      return;
    }
    // 如果没有找到对应的表，返回空数组
    if (rows.length === 0) {
      res.status(404).send('未找到对应的数据表');
      return;
    }
    res.send(rows);
  });
});

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`);
});


